From c06a7906945e7483186577406f61f516448cc7bc Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 2 Apr 2018 08:28:34 +0200 Subject: [PATCH] widget: Remove gtk_widget_draw() If you want to draw a widget to cairo today, you create a widget paintable, snapshot it to a render node and then draw the render node to cairo. And yes, this is that complicated on purpose. Don't draw widgets to Cairo. --- docs/reference/gtk/gtk4-sections.txt | 1 - gtk/gtkwidget.c | 40 ---------------------------- gtk/gtkwidget.h | 3 --- 3 files changed, 44 deletions(-) diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index be2b93509b..5417c28c78 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -4238,7 +4238,6 @@ gtk_widget_map gtk_widget_unmap gtk_widget_realize gtk_widget_unrealize -gtk_widget_draw gtk_widget_queue_draw gtk_widget_queue_resize gtk_widget_queue_resize_no_redraw diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 2aad2c8fa5..d3d60fa51a 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5379,46 +5379,6 @@ gtk_widget_draw_internal (GtkWidget *widget, } } -/** - * gtk_widget_draw: - * @widget: the widget to draw. It must be drawable (see - * gtk_widget_is_drawable()) and a size must have been allocated. - * @cr: a cairo context to draw to - * - * Draws @widget to @cr. The top left corner of the widget will be - * drawn to the currently set origin point of @cr. - * - * You should pass a cairo context as @cr argument that is in an - * original state. Otherwise the resulting drawing is undefined. For - * example changing the operator using cairo_set_operator() or the - * line width using cairo_set_line_width() might have unwanted side - * effects. - * You may however change the context’s transform matrix - like with - * cairo_scale(), cairo_translate() or cairo_set_matrix() and clip - * region with cairo_clip() prior to calling this function. Also, it - * is fine to modify the context with cairo_save() and - * cairo_push_group() prior to calling this function. - * - * Note that special-purpose widgets may contain special code for - * rendering to the screen and might appear differently on screen - * and when rendered using gtk_widget_draw(). - **/ -void -gtk_widget_draw (GtkWidget *widget, - cairo_t *cr) -{ - g_return_if_fail (GTK_IS_WIDGET (widget)); - g_return_if_fail (!widget->priv->alloc_needed); - g_return_if_fail (!widget->priv->alloc_needed_on_child); - g_return_if_fail (cr != NULL); - - cairo_save (cr); - - gtk_widget_draw_internal (widget, cr); - - cairo_restore (cr); -} - static gboolean gtk_widget_real_key_press_event (GtkWidget *widget, GdkEventKey *event) diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index d59e735eb5..bac9e4d8c3 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -408,9 +408,6 @@ void gtk_widget_realize (GtkWidget *widget); GDK_AVAILABLE_IN_ALL void gtk_widget_unrealize (GtkWidget *widget); -GDK_AVAILABLE_IN_ALL -void gtk_widget_draw (GtkWidget *widget, - cairo_t *cr); /* Queuing draws */ GDK_AVAILABLE_IN_ALL void gtk_widget_queue_draw (GtkWidget *widget); -- 2.30.2